package cn.fl.project.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.project.dto.PrjPrdMtgDTO;
import cn.fl.project.vo.PrjPrdMtgVO;

 /**
 * @Description: 项目产品抵押信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrjPrdMtgVOTransform {


	/**
	 * DTO 转  VO
	 * @param po PrjPrdMtgDTO
	 * @return PrjPrdMtgVO
	 */
	public static PrjPrdMtgVO toVO(PrjPrdMtgDTO dto) {
		PrjPrdMtgVO  vo = null;
		if (dto != null) { 
			vo = new PrjPrdMtgVO();
			vo.setId(dto.getId());
			vo.setRecNo(dto.getRecNo());//REC_NO
			vo.setIsWithoutDay(dto.getIsWithoutDay());//是否无期限抵押
			vo.setMtgDeadline(dto.getMtgDeadline());//MTG_DEADLINE
			vo.setMtgPsnTypCd(dto.getMtgPsnTypCd());//抵押人类型（PRJ0034）
			vo.setSortNo(dto.getSortNo());//SORT_NO
			vo.setGuarTypCd(dto.getGuarTypCd());//抵押物种类（PRJ0035）
			vo.setGuarDesc(dto.getGuarDesc());//GUAR_DESC
			vo.setPledgorNm(dto.getPledgorNm());//抵押人名称
			vo.setPledgorSignDt(dto.getPledgorSignDt());//抵押人签字日期
			vo.setPledgeeNm(dto.getPledgeeNm());//抵押权人名称
			vo.setPledgeeSignDt(dto.getPledgeeSignDt());//抵押权人签字日期
			vo.setRegAuthSignDt(dto.getRegAuthSignDt());//登记机关签字日期
			vo.setLicOrgId(dto.getLicOrgId());
			vo.setAudStsCd(dto.getAudStsCd());//审核状态（SYS0019）
			vo.setPinstId(dto.getPInstId());//流程实例ID
			vo.setPno(dto.getPNo());//流程编号
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setGuarStsCd(dto.getGuarStsCd());
			vo.setMtgWayCd(dto.getMtgWayCd());//抵押方式
			vo.setMtgWayCdNm(dto.getMtgWayCdNm());//抵押方式
			vo.setZgGuarStsCd(dto.getZgGuarStsCd());//资方抵押状态
			vo.setWarnStsCd(dto.getWarnStsCd());//抵押预警状态
			//----------------附加信息------------------------------//
			vo.setIsWithoutDayNm(dto.getIsWithoutDayNm());
			vo.setLicOrg(PrjPrdLicOrgVOTransform.toVO(dto.getLicOrg()));

			vo.setMtgPsnTypCdNm(dto.getMtgPsnTypCdNm());
			vo.setGuarTypCdNm(dto.getGuarTypCdNm());
			vo.setAudStsCdNm(dto.getAudStsCdNm());
			vo.setGuarStsCdNm(dto.getGuarStsCdNm());
			vo.setVin(dto.getVin());//车系
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			//-------------------------分页附加数据--------------------------------//
			vo.setCstNm(dto.getCstNm());
			vo.setPaySchNo(dto.getPaySchNo());
			vo.setPrdNm(dto.getPrdNm());
			vo.setPrdMdl(dto.getPrdMdl());
			vo.setPrjId(dto.getPrjId());
			vo.setDtlId(dto.getDtlId());
			vo.setPledgeState(dto.getPledgeState());//抵押验证状态
			vo.setPledgeeAuthNm(dto.getPledgeeAuthNm());//抵押权人名称
			vo.setRgnPrCd(dto.getRgnPrCd());
			vo.setRgnCyCd(dto.getRgnCyCd());
			vo.setFundRasInsNm(dto.getFundRasInsNm());//三方机构名称
			vo.setInsCode(dto.getInsCode());//三方机构编码
			vo.setZgGuarStsCdNm(dto.getZgGuarStsCdNm());//资方抵押状态名称
			vo.setWarnStsCdNm(dto.getWarnStsCdNm());//抵押预警状态名称
			vo.setMgtEndDate(dto.getMgtEndDate());//抵押截止日期
			vo.setThdPayDt(dto.getThdPayDt());//资方放款时间
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto PrjPrdMtgVO
	 * @return PrjPrdMtgDTO
	 */
	public static PrjPrdMtgDTO toDTO(PrjPrdMtgVO vo) {
		PrjPrdMtgDTO dto = null;
		if (vo != null) {
			dto = new PrjPrdMtgDTO();
			dto.setId(vo.getId());
			dto.setRecNo(vo.getRecNo());//REC_NO
			dto.setIsWithoutDay(vo.getIsWithoutDay());//是否无期限抵押
			dto.setMtgDeadline(vo.getMtgDeadline());//MTG_DEADLINE
			dto.setMtgPsnTypCd(vo.getMtgPsnTypCd());//抵押人类型（PRJ0034）
			dto.setSortNo(vo.getSortNo());//SORT_NO
			dto.setGuarTypCd(vo.getGuarTypCd());//抵押物种类（PRJ0035）
			dto.setGuarDesc(vo.getGuarDesc());//GUAR_DESC
			dto.setPledgorNm(vo.getPledgorNm());//抵押人名称
			dto.setPledgorSignDt(vo.getPledgorSignDt());//抵押人签字日期
			dto.setPledgeeNm(vo.getPledgeeNm());//抵押权人名称
			dto.setPledgeeSignDt(vo.getPledgeeSignDt());//抵押权人签字日期
			dto.setLicOrgId(vo.getLicOrgId());
			dto.setRegAuthSignDt(vo.getRegAuthSignDt());//登记机关签字日期
			dto.setAudStsCd(vo.getAudStsCd());//审核状态（SYS0019）
			dto.setPInstId(vo.getPinstId());//流程实例ID
			dto.setPNo(vo.getPno());//流程编号
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setIsWithoutDayNm(vo.getIsWithoutDayNm());
			dto.setGuarStsCd(vo.getGuarStsCd());
			dto.setLicOrg(PrjPrdLicOrgVOTransform.toDTO(vo.getLicOrg()));
			dto.setMtgWayCd(vo.getMtgWayCd());//抵押方式
			dto.setMtgWayCdNm(vo.getMtgWayCdNm());//抵押方式
			dto.setZgGuarStsCd(vo.getZgGuarStsCd());//资方抵押状态
			dto.setWarnStsCd(vo.getWarnStsCd());//抵押预警状态
			//----------------附加信息------------------------------//
			dto.setMtgPsnTypCdNm(vo.getMtgPsnTypCdNm());
			dto.setGuarTypCdNm(vo.getGuarTypCdNm());
			dto.setAudStsCdNm(vo.getAudStsCdNm());
			dto.setGuarStsCdNm(vo.getGuarStsCdNm());
			dto.setVin(vo.getVin());//车系
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			//-------------------------分页附加数据--------------------------------//
			dto.setCstNm(vo.getCstNm());
			dto.setPaySchNo(vo.getPaySchNo());
			dto.setPrdNm(vo.getPrdNm());
			dto.setPrdMdl(vo.getPrdMdl());
			dto.setPrjId(vo.getPrjId());
			dto.setDtlId(vo.getDtlId());
			dto.setPledgeState(vo.getPledgeState());
			dto.setPledgeeAuthNm(vo.getPledgeeAuthNm());//抵押权人名称
			dto.setRgnPrCd(vo.getRgnPrCd());
			dto.setRgnCyCd(vo.getRgnCyCd());
			dto.setFundRasInsNm(vo.getFundRasInsNm());//三方机构名称
			dto.setInsCode(vo.getInsCode());//三方机构编码
			dto.setZgGuarStsCdNm(vo.getZgGuarStsCdNm());//资方抵押状态名称
			dto.setWarnStsCdNm(vo.getWarnStsCdNm());//抵押预警状态名称
			dto.setMgtEndDate(vo.getMgtEndDate());//抵押截止日期
			dto.setThdPayDt(vo.getThdPayDt());//资方放款时间
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<PrjPrdMtgDTO>
	 * @return List<PrjPrdMtgVO>
	 */
	public static List<PrjPrdMtgVO> toVOList(List<PrjPrdMtgDTO> list) {
		List<PrjPrdMtgVO>  voList = new ArrayList<PrjPrdMtgVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdMtgDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrjPrdMtgVO>
	 * @return List<PrjPrdMtgDTO>
	 */
	public static List<PrjPrdMtgDTO> toDTOList(List<PrjPrdMtgVO> list) {
		List<PrjPrdMtgDTO>  dtoList = new ArrayList<PrjPrdMtgDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdMtgVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
